Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rrfs_ci: Merge authoritative develop #273

Merged
merged 16 commits into from
Feb 4, 2022

Conversation

christinaholtNOAA
Copy link
Collaborator

DESCRIPTION OF CHANGES:

Merges in the authoritative develop.

Please do not squash this merge when it is ready to go in so that we may keep the history consistent with the authoritative develop.

DEPENDENCIES:

PR #112 in NOAA-GSL:ufs-srweather-app/rrfs_ci

chan-hoo and others added 16 commits November 23, 2021 13:45
…nity#642)

* Update templates for new ufs weather model

* Add option for pressure tendency diagnostic

* Remove unnecessary namelist parameters

* Modify model_configure

* change nfhout to output_fh
## DESCRIPTION OF CHANGES: 
1. Add a new experiment configuration variable named `DEBUG` to enable more in-depth debugging output from workflow scripts.  Set default value of `DEBUG` in `config_defaults.sh` to `"FALSE"`.
2. In experiment generation scripts, change circumstances under which different messages are printed to screen (e.g. when `VERBOSE` is `"TRUE"`, when `DEBUG` is `"TRUE"`, or always).
3. In experiment generation scripts, for clarity add new informational messages and modify some existing ones.
4. In various scripts, change "set -x" to "set +x" to reduce output clutter.  This can be changed back as necessary (e.g. for debugging).

Note that if `DEBUG` is set to `"TRUE"`, `VERBOSE` will get reset to `"TRUE"` if necessary in order to also print out all the `VERBOSE` messages.

## TESTS CONDUCTED: 
Ran the WE2E test `grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2` as-is as well as with modifications to the default values of `VERBOSE` and `DEBUG`, as follows:
1. `grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2` as-is, i.e. using default values `VERBOSE="TRUE"` and `DEBUG="FALSE"`.
2. `grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2` modified with `VERBOSE="FALSE"` (and with default of `DEBUG="FALSE"`).
3. `grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2` modified with `DEBUG="TRUE"` (and with default of `VERBOSE="TRUE"`).
4. `grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2` modified with `DEBUG="TRUE"` and `VERBOSE="FALSE"` (which should get reset to `"TRUE"`).

All tests were successful.  The experiment generation log files (`log.generate_FV3LAM_wflow.sh`) were compared and differed in the expected ways.

## DOCUMENTATION:
Necessary documentation of `DEBUG` is in `config_defaults.sh`.  Created Issue #[640 ](https://github.com/NOAA-EMC/regional_workflow/issues/640)to also update rst documentation.
## DESCRIPTION OF CHANGES:
1. Add capability to turn on/off those workflow tasks that currently do not have this capability.  These tasks are:
  a. Getting the external model files for creating initial conditions (`GET_EXTRN_ICS_TN`).
  b. Getting the external model files for creating boundary conditions (`GET_EXTRN_LBCS_TN`).
  c. Regridding/interpolating data from the external model IC files to obtain IC fields on the native grid (`MAKE_ICS_TN`).
  d. Regridding/interpolating data from the external model LBC files to obtain LBC fields on the native grid (`MAKE_LBCS_TN`).
  e. Running the forecast (`RUN_FCST`).
Note that any remaining tasks in the workflow already have the capability to be toggled on/off.

2. Add a WE2E test (named `deactivate_tasks`) to test the ability to turn off tasks.  In this test, all the tasks except `MAKE_GRID_TN`, `MAKE_OROG_TN`, and `MAKE_SFC_CLIMO_TN` are turned off (the latter 3 are not turned off because there is already a separate WE2E for turning those three off).

## TESTS CONDUCTED: 
Ran the new WE2E test (`deactivate_tasks`) successfully on Hera.

## DOCUMENTATION:
Necessary documentation has been included in `config_defaults.sh`.  Created Issue ufs-community#646 to also update rst documentation.
* Make cycl_freq adjustable

* Make other increments >24h work

* Change the limit of num_cycles
* Add FV3_GFS_v15_thompson_mynn_lam3km

* Add a we2e test for thompson_mynn_lam3km

* Update namelist files

* Add MERRA2 data

* Fix typos

* Move the SDF line in scripts

* remove change of nstf_name
…ensvx_vars) (ufs-community#649)

* Modifications to grid-to-point ensemble vx for additional variables, levels, and thresholds.

* Update ensemble thresholds for APCP. Turning on OBS ERR for APCP.

* Turn off OBS ERR for point

* Turn OBS ERR to false in EnsembleStatConfig_point

* Turned on obs error for ensemble point vx; fixed TCDC fcst options in conf files.

* Broke out BOTH_ to FCST_ and OBS_ in certain METplus conf files.

* Fixed typo in GridStat_APCP06h_prob.conf.

* Add NBR ens probability section to APCP and REFC ensemble-stat configs.

* Addressed typo in EnsembleStatConfig_APCP.

* Removed double TCDC entry in PointStat_conus_sfc_prob.conf.

Co-authored-by: Jamie Wolff <jwolff@ucar.edu>
## DESCRIPTION OF CHANGES: 
This PR is one of two in a series that addresses refactoring platform-dependence. The topic of this PR is to refactor the logic for supporting platforms with specific real-time data feeds. Here is a list of features and modifications that were made:

- Apply appropriate style for functions, mainly related to white space for nested code and comments.
- Make external model file offset hours configurable for analysis- and forecast-type files because sometimes we like to start a forecast from a forecast of another model.
- Refactor to reduce duplication of information.
- Set up filenames and paths to be specified with templates in a consistent way for every model instead of with bash logic that is different for every model's naming convention.
- Remove paths that do not exist on platforms I have access to: Jet and Hera.

No changes were made to the logic for input managed by USE_USER_STAGED_EXTRN_FILES or COMINGgfs for NCO mode, although it could make sense to re-assess the NCO mode handling at a later date.

I plan to go through and "review" the code to lead reviewers through this one since it bit of change. It may be helpful to view it using GitHub's ignore whitespace feature. 

## TESTS CONDUCTED: 
Test cases using the WE2E test on Hera; see PR for full list.
   
A test case for the same forecast configuration using known paths on Hera to exercise the new code. 

I checked that arrays were consistent, that the script exits in a sane manner when files are not available on disk or HPSS, and that I haven't broken anything with the way files are handled through the "user specified" mechanism necessary for the test framework.

## ISSUE (optional): 
This work is an incremental change in support of Issue ufs-community#618 

## CONTRIBUTORS (optional): 
@christopherwharrop-noaa @venitahagerty @robgonzalezpita
## DESCRIPTION OF CHANGES:
1. Enhance ability to use template variables in the experiment configuration file (either in the default configuration file `config_defaults.sh` or the user configuration file `config.sh`).
2. Modify WE2E test system to include test of template variable use.
3. Fix bugs.

### Notes on template variables:
A template variable (or simply a template) is an experiment variable that contains in its definition a reference to another variable(s).  The referenced variable can be another experiment variable (i.e. one that is defined in `var_defns.sh`), or it can be a local variable (i.e. one that is not defined in `var_defns.sh` but in the script or function that sources `var_defns.sh` and uses the template).  For example, a template named `TEMPL_VAR` my be defined in `config_defaults.sh` or `config.sh` as

`TEMPL_VAR='cd ${some_dir}'`

where `some_dir` may be an experiment variable or a local variable.  `TEMPL_VAR` can then be evaluated using bash's `eval` built-in command in a script or function that first sources `var_defns.sh` and, if necessary, defines `some_dir`.  Note that single quotes must be used on the right-hand side to avoid expansion of `${some_dir}` before run time (i.e. when `eval` is called on `TEMPL_VAR`).  For details, see the documentation added in PR #[198](ufs-community/ufs-srweather-app#198).

### Changes to WE2E tests:
* Modify the WE2E test configuration file `config.deactivate_tasks.sh` to include template variables.  `deactivate_tasks` now serves as a test of both deactivating tasks and of using template variables.
* Add `template_vars` as an alternate test name for `deactivate_tasks` (by creating a symlink named `config.template_vars.sh` that points to `config.deactivate_tasks.sh`).

### Bug fixes:
* In `get_WE2Etest_names_subdirs_descs.sh`, change the variable `alt_test_subdirs` to `alt_test_names` at a single location.
* In `setup.sh`, set `BUILD_ENV_FN` and `WFLOW_ENV_FN` (instead of in `load_modules_run_task.sh` and `launch_FV3LAM_wflow.sh`, respectively).  This way, these variables will have the correct values in `var_defns.sh`.
* In `get_expts_status.sh`, fix the way `homerrfs` is calculated.

## TESTS CONDUCTED: 
The WE2E tests `grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2` and `template_vars` were run on Hera.  Both completed successfully.

## DOCUMENTATION:
Documentation is added to the User's Guide via PR #[198](ufs-community/ufs-srweather-app#198) into the ufs-srweather-app repo.

## Dependencies:
PR #[198](ufs-community/ufs-srweather-app#198) for the documentation.

## CONTRIBUTORS:
@christinaholtNOAA and @mkavulich brought up the issue of templates as part of PR #[617](https://github.com/NOAA-EMC/regional_workflow/pull/617).
* update nord and d4_bg

* Change values of ice_nc, rain_nc, and sgs_tke for new divergence damping
* Adding YAML file with fixed GFS data locations.

* Use "download" as protocol.

* Adding WIP script to retrieve data using yml.

Does not work at all at this point.

* Updates to allow working ingest.

* Turn on logging and clean up after htar.

* Adding support for RAP/HRRR/NAM

* WIP.

* Fixing paths, testing HRRR, error if nothing found.

* Better handling of un-found dataset via wget.

* Adding capability to copy files from disk.

* Linting.

* Addressing review concerns.
@venitahagerty
Copy link

Machine: jet
Compiler: gnu
Job: WE
Repo location: /lfs1/BMC/nrtrr/rrfs_ci/autoci/pr/837597992/20220201205050/ufs-srweather-app
Build was Successful
Rocoto jobs started
Done: 0 of 1
Long term tracking will be done
If test failed, please make changes and add the following label back:
ci-jet-gnu-WE

@venitahagerty
Copy link

Experiment Failed: grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GSD_SAR
2022-02-01 20:56:13 +0000 :: fe1 :: Task make_grid, jobid=66038657, in state DEAD (FAILED), ran for 13.0 seconds, exit status=256, try=1 (of 1)

@venitahagerty
Copy link

Machine: jet
Compiler: gnu
Job: WE
Repo location: /lfs1/BMC/nrtrr/rrfs_ci/autoci/pr/837597992/20220201214738/ufs-srweather-app
Build was Successful
Rocoto jobs started
Done: 0 of 1
Long term tracking will be done
If test failed, please make changes and add the following label back:
ci-jet-gnu-WE

@venitahagerty
Copy link

Experiment Failed: grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GSD_SAR
2022-02-01 21:54:12 +0000 :: fe5 :: Task make_grid, jobid=66040535, in state DEAD (FAILED), ran for 6.0 seconds, exit status=256, try=1 (of 1)

@venitahagerty
Copy link

Machine: jet
Compiler: gnu
Job: WE
Repo location: /lfs1/BMC/nrtrr/rrfs_ci/autoci/pr/837597992/20220202153549/ufs-srweather-app
Build was Successful
Rocoto jobs started
Done: 0 of 1
Long term tracking will be done
If test failed, please make changes and add the following label back:
ci-jet-gnu-WE

@venitahagerty
Copy link

Machine: jet
Compiler: gnu
Job: WE
Repo location: /lfs1/BMC/nrtrr/rrfs_ci/autoci/pr/837597992/20220202170415/ufs-srweather-app
If test failed, please make changes and add the following label back:
ci-jet-gnu-WE
Build Failed
If test failed, please make changes and add the following label back:
ci-jet-gnu-WE

@venitahagerty
Copy link

Experiment Failed on jet: grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GSD_SAR
2022-02-02 15:42:11 +0000 :: fe2 :: Task make_grid, jobid=66075707, in state DEAD (FAILED), ran for 6.0 seconds, exit status=256, try=1 (of 1)

@venitahagerty
Copy link

Machine: jet
Compiler: gnu
Job: WE
Repo location: /lfs1/BMC/nrtrr/rrfs_ci/autoci/pr/837597992/20220203204035/ufs-srweather-app
Build failed
If test failed, please make changes and add the following label back:
ci-jet-gnu-WE

@venitahagerty
Copy link

Machine: jet
Compiler: gnu
Job: WE
Repo location: /lfs1/BMC/nrtrr/rrfs_ci/autoci/pr/837597992/20220204162119/ufs-srweather-app
Build was Successful
Rocoto jobs started
Done: 0 of 1
Long term tracking will be done
If test failed, please make changes and add the following label back:
ci-jet-gnu-WE

@venitahagerty
Copy link

Experiment Succeeded on jet: grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GSD_SAR
2022-02-04 17:28:11 +0000 :: fe7 :: This cycle is complete: Success

Copy link

@venitahagerty venitahagerty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Runs on jet with modification of test script to adapt to changes to build script.

@christinaholtNOAA christinaholtNOAA merged commit 3a25991 into NOAA-GSL:rrfs_ci Feb 4, 2022
@christinaholtNOAA christinaholtNOAA deleted the merge_dev branch February 4, 2022 17:44
guoqing-noaa pushed a commit to guoqing-noaa/regional_workflow that referenced this pull request Sep 15, 2024
…AA-GSL#273)

* Update workflow to do retros on WCOSS2 with RRFS_A configuration.

* Should pick GDADENKF for ensemble DA initial start.

---------

Co-authored-by: ming hu <ming.hu@clogin05.cactus.wcoss2.ncep.noaa.gov>
Co-authored-by: ming hu <ming.hu@clogin02.cactus.wcoss2.ncep.noaa.gov>
Co-authored-by: MatthewPyle-NOAA <48285220+MatthewPyle-NOAA@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants